package graph

// 有向图
type Digraph struct {
	Vertexes []*Vertex `json:"vertexes,omitempty"`
	Edges    []*Edge   `json:"edges,omitempty"`
}

// 顶点
type Vertex struct {
	In               *ConnectionPoint `json:"in,omitempty"`
	Out              *ConnectionPoint `json:"out,omitempty"`
	AdjacentVertexes []*Vertex        `json:"adjacent_vertexes,omitempty"`
}

// 各顶点之间边的连接端点
type ConnectionPoint struct {
	Name string `json:"name,omitempty"`
}

// 有向边
type Edge struct {
	// 从一个顶点的Out端点出发
	From *ConnectionPoint `json:"from,omitempty"`
	// 到某个顶点的In端点
	To  *ConnectionPoint `json:"to,omitempty"`
	Api *Api             `json:"api,omitempty"`
}

// 每条有向边记录着相关API信息
type Api struct {
	// 边上API的数量
	Num int64 `json:"num,omitempty"`
	// 这些API总的调用计数
	CallCount int64 `json:"call_count,omitempty"`
}
